<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="libman.css">
<TITLE>
Introduction
</TITLE>
</HEAD>
<BODY >
<A HREF="libman064.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="libman066.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc142">10.1</A>&nbsp;&nbsp;Introduction</H2><UL>
<LI><A HREF="libman065.html#toc79">Using the Library</A>
</UL>


<A NAME="@default368"></A>
The Repair library provides two simple, fundamental features which are
the basis for the development of repair algorithms and non-monotonic
search methods in ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP>:
<UL CLASS="itemize"><LI CLASS="li-itemize">
The maintenance of <EM>tentative values</EM> for the problem variables.
 These tentative values may together form a partial
 or even inconsistent <EM>tentative assignment</EM>. 
 Modifications to, or extensions of this assignment may be
 applied until a correct solution is found.<BR>
<BR>
<LI CLASS="li-itemize">The monitoring of constraints (the so called <EM>repair constraints</EM>)
 for being either satisfied or violated under the current tentative
 assignment. Search algorithms can then access the set of
 constraints that are violated at any point in the search,
 and perform repairs by changing the tentative assignment
 of the problem variables.
</UL>
This functionality allows the implementation of classical local search
<A NAME="@default369"></A>
methods within a CLP environment (see <EM>Tutorial on Search Methods</EM>).
However, the central aim of the Repair library is to provide a framework
for the integration of repair-based search with the consistency techniques
available in ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP>, such as the domains and constraints of the FD library.<BR>
<BR>
A more detailed description of the theory and methods that are the basis of 
the Repair library is available [<A HREF="libman072.html#HaniThesis"><CITE>5</CITE></A>].<BR>
<BR>
<A NAME="toc79"></A>
<H3 CLASS="subsection"><A NAME="htoc143">10.1.1</A>&nbsp;&nbsp;Using the Library</H3>
To use the repair library you need to load it using
<BLOCKQUOTE CLASS="quote"><PRE CLASS="verbatim">
:- lib(repair).
</PRE></BLOCKQUOTE>
Normally, you will also want to load one more of the
'fd', 'ic', 'fd_sets' or 'conjunto' solvers. This is
because of the notion of tenability, i.e. whether a tentative value is
in a domain is checked by communicating with a different solver that
keeps that domain.<BR>
<BR>
<HR>
<A HREF="libman064.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="libman066.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
